Semiconductor circuits, such as microprocessors and microcontrollers, are often based on a general-purpose microcontroller, such as the Intel 8051, commercially available from Intel Corporation of Santa Clara, Calif. Such general-purpose microcontrollers are typically highly standardized and often support a wide range of commands. In addition, such general-purpose microcontrollers typically have very specific hardware interfaces that are designed for a specific function. While the hardware interfaces may have a degree of flexibility (software control), they are highly constrained in their functionality. For instance, a serial port will be targeted almost exclusively to a specific standard interface. A hardware solution for a RS232 serial interface, for example, requires a different design than a hardware solution for a Universal Serial Bus (USB) interface. Thus, when a semiconductor circuit is designed for a specialized purpose, such as a smart card, a majority of the interface is in hardware and many of the commands supported by the underlying microcontroller are not utilized. Thus, the semiconductor circuit has a larger surface area than necessary and is otherwise an inefficient use of the microcontroller.
The development of semiconductor circuits is often an expensive and time-consuming process. In addition, with a trend towards specialized smart cards for each customer and application, the specific configuration of a smart card will depend on the ultimate application. Thus, the design and development of a specific smart card and application typically involves an identification of the target market, followed by the design and manufacture of a specific integrated circuit. For more sophisticated applications, such as a smart card used for access control applications, the smart card will have more sophisticated and complicated integrated circuits, and will typically include various volatile and non-volatile memory technologies that are typically loaded with application-specific software at the time of manufacture.
Since the market for a given smart card application may be at an early stage of development, it may be difficult to rationalize development of highly specialized smart card chips for a market that may or may not grow rapidly, and which is poorly understood. Furthermore, the requirement for increasingly complex and secure integrated circuits for many smart card applications extends the design cycle, which in turn increases the cost of the device produced. This is at odds with the requirements of the smart card industry for low cost and rapid fabrication.
The early identification of the specific requirements for a given smart card during the initial design stage is further complicated by the absence of standards. As the smart card industry has developed, a number of communication protocols, operating systems and security schemes have been employed. For example, various communication protocols are used in smart card applications, such as the ISO7816, USB and a number of Radio Frequency Identification Device (RFID) standards, each having their own unique requirements for maintaining communication, such as specifications for the number of bits-per-word, relative timing and voltage levels. A smart card must incorporate an interface for each of the communication protocols that are supported. Currently, a semiconductor device supporting a number of communication protocols must include a dedicated interface for each supported transmission protocol. Nonetheless, the various communication protocols typically share a number of common functions, such as converting between an incoming serial bit stream and parallel data.
A need therefore exists for a semiconductor circuit that supports a number of communication protocols without requiring a dedicated hardware implementation for each protocol. A further need exists for a programmable serial interface that allows various hardware elements to be shared by a number of supported communication protocols. Yet another need exists for a configurable serial interface that may be reconfigured to operate in accordance with a selected communication protocol. In addition, a need exists for a programmable serial interface that implements one or more functions in software instead of dedicated hardware.